/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hoja.de.trabajo.pkg1;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
//import javax.swing.JOptionPane;



import java.io.*;
import java.util.*;

/**
 * AlGORITMOS Y ESTRUCTURA DE DATOS
 *  HOJA DE TRABAJO NO. 1
 * SECCION 10
 * @author VICTOR FUENTES 12298
 *          MARCOS LAPOEZ 12520
 *          ROGER DIAZ    
 */
public class RadioGui extends JPanel{
    //atributos
    private JLabel InfoFrec;//frecuencia am-fm
    private JLabel InfoEmi;//emisoras
    private JLabel InfoEstado;
    
    private JButton Uno, Dos, Tres,Cuatro, Cinco, Seis, Siete, Ocho, Nueve;
    private JButton Diez, Once, Doce;
    private JButton EstadoOn,EstadoOff, Agregar, AgregarOrg;
    
    private JTextField InFrec;
    private JTextField InEmi;
    
    private Radio miradio;
    
    private String frecuencia;
    private double emisora;
    
    //constructor
    public RadioGui(Radio miradios){
      miradio=miradios; 
      frecuencia=miradio.getActualFrec();
      emisora=miradio.getActualEmi();
      setLayout(new GridLayout(7,3));
      setBackground(Color.YELLOW);
      
      InfoFrec=new JLabel("Frecuencia: --");
      InfoEmi=new JLabel("Emisora: --");
      InfoEstado=new JLabel("Estado: Apagado");
      
      InFrec=new JTextField("Ingrese Frecuencia",2);
      InEmi=new JTextField("Ingrese Emisora",5);
      
      
      EstadoOn=new JButton("Encender");
      EstadoOff=new JButton("Apagar");
      Agregar=new JButton("Agregar");
      AgregarOrg=new JButton("Agregar Organizado");
      Uno=new JButton("1");
      Dos=new JButton("2");
      Tres=new JButton("3");
      Cuatro=new JButton("4");
      Cinco=new JButton("5");
      Seis=new JButton("6");
      Siete=new JButton("7");
      Ocho=new JButton("8");
      Nueve=new JButton("9");
      Diez=new JButton("10");
      Once=new JButton("11");
      Doce=new JButton("12");
      
     
      //listeners
      ButtonListener listener=new ButtonListener();
      EstadoOn.addActionListener(listener);
      EstadoOff.addActionListener(listener);
      Uno.addActionListener(listener);
      Dos.addActionListener(listener);
      Tres.addActionListener(listener);
      Cuatro.addActionListener(listener);
      Cinco.addActionListener(listener);
      Seis.addActionListener(listener);
      Siete.addActionListener(listener);
      Ocho.addActionListener(listener);
      Nueve.addActionListener(listener);
      Diez.addActionListener(listener);
      Once.addActionListener(listener);
      Doce.addActionListener(listener);
      
      AgregarOrg.addActionListener(listener);
      Agregar.addActionListener(listener);
      
      
      TempListener cuadro=new TempListener();
      InFrec.addActionListener(cuadro);
      InEmi.addActionListener(cuadro);
      //agregar a JPanel
      add(InfoFrec);
      add(InfoEmi);
      add(InfoEstado);
      add(InFrec);
      add(InEmi);
      add(EstadoOn);add(EstadoOff);add(Agregar);add(AgregarOrg);
      add(Uno);
      add(Dos);
      add(Tres);
      add(Cuatro);
      add(Cinco);
      add(Seis);
      add(Siete);
      add(Ocho);
      add(Nueve);
      add(Diez);
      add(Once);
      add(Doce);
        
      setPreferredSize(new Dimension(700, 200));
      
      EstadoOff.setEnabled(false);
      InFrec.setEnabled(false);
      InEmi.setEnabled(false);
      Uno.setEnabled(false);
      Dos.setEnabled(false);
      Tres.setEnabled(false);
      Cuatro.setEnabled(false);
      Cinco.setEnabled(false);
      Seis.setEnabled(false);
      Siete.setEnabled(false);
      Ocho.setEnabled(false);
      Nueve.setEnabled(false);
      Diez.setEnabled(false);
      Once.setEnabled(false);
      Doce.setEnabled(false);
      Agregar.setEnabled(false);
      AgregarOrg.setEnabled(false);
      
    }
    
    private class ButtonListener implements ActionListener{
        public void actionPerformed(ActionEvent boton){
            if(boton.getSource()==EstadoOn){
                EstadoOff.setEnabled(true);
                EstadoOn.setEnabled(false);
                miradio.Encender();
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
                InfoEstado.setText("Estado: Encendido");
                EstadoOff.setEnabled(true);
                InFrec.setEnabled(true);
                InEmi.setEnabled(true);
                Uno.setEnabled(true);
                Dos.setEnabled(true);
                Tres.setEnabled(true);
                Cuatro.setEnabled(true);
                Cinco.setEnabled(true);
                Seis.setEnabled(true);
                Siete.setEnabled(true);
                Ocho.setEnabled(true);
                Nueve.setEnabled(true);
                Diez.setEnabled(true);
                Once.setEnabled(true);
                Doce.setEnabled(true);
                Agregar.setEnabled(true);
                AgregarOrg.setEnabled(true);
                
            }
            if(boton.getSource()==EstadoOff){
                EstadoOff.setEnabled(false);
                EstadoOn.setEnabled(true);
                miradio.Apagar();
                InfoFrec.setText("Frecuencia: --");
                InfoEmi.setText("Emisora: --");
                InfoEstado.setText("Estado: Apagado");
                EstadoOff.setEnabled(false);
                InFrec.setEnabled(false);
                InEmi.setEnabled(false);
                Uno.setEnabled(false);
                Dos.setEnabled(false);
                Tres.setEnabled(false);
                Cuatro.setEnabled(false);
                Cinco.setEnabled(false);
                Seis.setEnabled(false);
                Siete.setEnabled(false);
                Ocho.setEnabled(false);
                Nueve.setEnabled(false);
                Diez.setEnabled(false);
                Once.setEnabled(false);
                Doce.setEnabled(false);
                Agregar.setEnabled(false);
                AgregarOrg.setEnabled(false);
               
                
            }
            if(boton.getSource()==AgregarOrg){
                miradio.AgregarEstacion(miradio.getActualFrec(), miradio.getActualEmi());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
                //System.out.println(miradio.getCount());
                JOptionPane.showMessageDialog(null, "Se agreo a :"+ miradio.getCount());
            }
            
            if(boton.getSource()==Agregar){
               EstadoOff.setEnabled(false);
               EstadoOn.setEnabled(false);
               AgregarOrg.setEnabled(false);
               Agregar.setEnabled(false);
               InFrec.setEditable(false);
               InEmi.setEditable(false);
               Uno.setEnabled(false);
                Dos.setEnabled(false);
                Tres.setEnabled(false);
                Cuatro.setEnabled(false);
                Cinco.setEnabled(false);
                Seis.setEnabled(false);
                Siete.setEnabled(false);
                Ocho.setEnabled(false);
                Nueve.setEnabled(false);
                Diez.setEnabled(false);
                Once.setEnabled(false);
                Doce.setEnabled(false);
                try{
                    String  i=JOptionPane.showInputDialog("Ingrese numero 1-12:");
                    int ii=Integer.parseInt(i);
                    ii=ii-1;
                    miradio.ModificarEstacion(ii, miradio.getActualFrec(), miradio.getActualEmi());
                }catch(Exception c){
                    JOptionPane.showMessageDialog(null, "Ingreso Erroneo");
                }
                
                
                
                EstadoOff.setEnabled(true);
               EstadoOn.setEnabled(false);
               AgregarOrg.setEnabled(true);
               Agregar.setEnabled(true);
               InFrec.setEditable(true);
               InEmi.setEditable(true);
               Uno.setEnabled(true);
                Dos.setEnabled(true);
                Tres.setEnabled(true);
                Cuatro.setEnabled(true);
                Cinco.setEnabled(true);
                Seis.setEnabled(true);
                Siete.setEnabled(true);
                Ocho.setEnabled(true);
                Nueve.setEnabled(true);
                Diez.setEnabled(true);
                Once.setEnabled(true);
                Doce.setEnabled(true);
                
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
               
               
            }
            
            if(boton.getSource()==Uno){
                miradio.SeleccionarEstacion(0);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
                
            }
            if(boton.getSource()==Dos){
                miradio.SeleccionarEstacion(1);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
             if(boton.getSource()==Tres){
                miradio.SeleccionarEstacion(2);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
              if(boton.getSource()==Cuatro){
                miradio.SeleccionarEstacion(3);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
               if(boton.getSource()==Cinco){
                miradio.SeleccionarEstacion(4);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
                if(boton.getSource()==Seis){
                miradio.SeleccionarEstacion(5);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
                 if(boton.getSource()==Siete){
                miradio.SeleccionarEstacion(6);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
                  if(boton.getSource()==Ocho){
                miradio.SeleccionarEstacion(7);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
                   if(boton.getSource()==Nueve){
                miradio.SeleccionarEstacion(8);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
                    if(boton.getSource()==Diez){
                miradio.SeleccionarEstacion(9);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
                     if(boton.getSource()==Once){
                miradio.SeleccionarEstacion(10);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
                      if(boton.getSource()==Doce){
                miradio.SeleccionarEstacion(11);
                //System.out.println(miradio.getEstacion());
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }
                      
                     
        }
    }
    
    private class TempListener implements ActionListener{
        public void actionPerformed(ActionEvent cuadro){
            try{
                frecuencia=InFrec.getText();
                 //System.out.println(frecuencia);
                String EMISORA=InEmi.getText();
                emisora=Double.parseDouble(EMISORA);
               
                //System.out.println(emisora);
                miradio.LeerEstacion(frecuencia, emisora);
                InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                InfoEmi.setText("Emisora:"+miradio.getActualEmi());
            }catch(Exception e){
                try{
                    String EMISORA=InEmi.getText();
                    emisora=Double.parseDouble(EMISORA);
                    //System.out.println(frecuencia);
                    //System.out.println(emisora);
                    miradio.LeerEstacion(frecuencia,emisora);
                    InfoFrec.setText("Frecuencia:"+miradio.getActualFrec());
                    InfoEmi.setText("Emisora:"+miradio.getActualEmi());
                    
                }catch(Exception a){
                    
                }
            }
        }
    }
}
